import { defineEventHandler, getQuery } from 'h3';

export default defineEventHandler(async (event) => {
  const query = getQuery(event);
  const {
    businessType,
    resourceType,
    scope,
    pageNo = 1,
    pageSize = 10,
  } = query;

  // 可复制的资源（模板）数据
  const templateResources = [
    // 酒店主楼模板
    {
      id: 101,
      name: '酒店主楼管理模板',
      description:
        '这是一个完整的酒店主楼管理模板，包含客房管理、预订管理、客人服务等核心能力',
      business_type: 'HOTEL',
      resource_type: 'PHYSICAL',
      copy_scope: 'public',
      is_template: true,
      template_name: '酒店主楼管理模板',
      template_description:
        '这是一个完整的酒店主楼管理模板，包含客房管理、预订管理、客人服务等核心能力',
      created_by: 'manager',
      created_time: '2024-01-15 10:30:00',
      updated_time: '2024-01-15 10:30:00',
      capabilities: [
        {
          id: 1,
          code: 'ROOM_MANAGEMENT',
          name: '客房管理能力',
          description: '提供客房状态管理、房态更新、房间分配等核心能力',
          icon: 'ant-design:home-outlined',
          color: '#52c41a',
          type: 'business',
          enabled: true,
          priority: 95,
        },
        {
          id: 2,
          code: 'BOOKING_MANAGEMENT',
          name: '预订管理能力',
          description: '提供客房预订、订单处理、预订确认等业务能力',
          icon: 'ant-design:calendar-outlined',
          color: '#1890ff',
          type: 'business',
          enabled: true,
          priority: 90,
        },
        {
          id: 5,
          code: 'GUEST_SERVICE',
          name: '客人服务能力',
          description: '提供客人服务请求、客房服务、投诉处理等能力',
          icon: 'ant-design:customer-service-outlined',
          color: '#eb2f96',
          type: 'business',
          enabled: true,
          priority: 75,
        },
      ],
    },
    // 酒店数字化管理模板
    {
      id: 103,
      name: '酒店数字化管理模板',
      description:
        '这是一个酒店数字化管理的标准模板，包含PMS集成、支付网关、数据分析等能力',
      business_type: 'HOTEL',
      resource_type: 'DIGITAL',
      copy_scope: 'public',
      is_template: true,
      template_name: '酒店数字化管理模板',
      template_description:
        '这是一个酒店数字化管理的标准模板，包含PMS集成、支付网关、数据分析等能力',
      created_by: 'admin',
      created_time: '2024-01-17 09:15:00',
      updated_time: '2024-01-17 09:15:00',
      capabilities: [
        {
          id: 1,
          code: 'ROOM_MANAGEMENT',
          name: '客房管理能力',
          description: '提供客房状态管理、房态更新、房间分配等核心能力',
          icon: 'ant-design:home-outlined',
          color: '#52c41a',
          type: 'business',
          enabled: true,
          priority: 90,
        },
        {
          id: 2,
          code: 'BOOKING_MANAGEMENT',
          name: '预订管理能力',
          description: '提供客房预订、订单处理、预订确认等业务能力',
          icon: 'ant-design:calendar-outlined',
          color: '#1890ff',
          type: 'business',
          enabled: true,
          priority: 95,
        },
        {
          id: 7,
          code: 'PMS_INTEGRATION',
          name: 'PMS系统集成能力',
          description: '提供与酒店PMS系统的数据同步和业务集成能力',
          icon: 'ant-design:api-outlined',
          color: '#1890ff',
          type: 'technical',
          enabled: true,
          priority: 95,
        },
        {
          id: 8,
          code: 'PAYMENT_GATEWAY',
          name: '支付网关能力',
          description: '提供多种支付方式集成和支付处理能力',
          icon: 'ant-design:credit-card-outlined',
          color: '#52c41a',
          type: 'technical',
          enabled: true,
          priority: 90,
        },
        {
          id: 11,
          code: 'DATA_ANALYTICS',
          name: '数据分析能力',
          description: '提供酒店运营数据分析和商业智能能力',
          icon: 'ant-design:bar-chart-outlined',
          color: '#eb2f96',
          type: 'technical',
          enabled: true,
          priority: 80,
        },
      ],
    },
    // 客房清洁管理模板
    {
      id: 105,
      name: '客房清洁管理模板',
      description: '这是一个客房清洁管理的模板，包含清洁计划、质量检查等能力',
      business_type: 'HOTEL',
      resource_type: 'PHYSICAL',
      copy_scope: 'group',
      is_template: true,
      template_name: '客房清洁管理模板',
      template_description:
        '这是一个客房清洁管理的模板，包含清洁计划、质量检查等能力',
      created_by: 'housekeeper',
      created_time: '2024-01-19 11:30:00',
      updated_time: '2024-01-19 11:30:00',
      capabilities: [
        {
          id: 6,
          code: 'HOUSEKEEPING_MANAGEMENT',
          name: '客房清洁能力',
          description: '提供客房清洁计划、清洁状态跟踪、清洁质量检查等能力',
          icon: 'ant-design:clean-outlined',
          color: '#13c2c2',
          type: 'business',
          enabled: true,
          priority: 95,
        },
        {
          id: 10,
          code: 'REAL_TIME_COMMUNICATION',
          name: '实时通信能力',
          description: '提供客房服务、前台沟通等实时消息通信能力',
          icon: 'ant-design:message-outlined',
          color: '#fa8c16',
          type: 'technical',
          enabled: true,
          priority: 80,
        },
      ],
    },
    // 前台服务培训模板
    {
      id: 106,
      name: '前台服务培训模板',
      description: '这是一个前台服务培训的模板，包含入住退房、客人服务等能力',
      business_type: 'HOTEL',
      resource_type: 'HUMAN',
      copy_scope: 'private',
      is_template: true,
      template_name: '前台服务培训模板',
      template_description:
        '这是一个前台服务培训的模板，包含入住退房、客人服务等能力',
      created_by: 'receptionist',
      created_time: '2024-01-20 13:20:00',
      updated_time: '2024-01-20 13:20:00',
      capabilities: [
        {
          id: 3,
          code: 'CHECKIN_CHECKOUT',
          name: '入住退房能力',
          description: '提供客人入住登记、退房结算、房卡管理等能力',
          icon: 'ant-design:user-add-outlined',
          color: '#722ed1',
          type: 'business',
          enabled: true,
          priority: 95,
        },
        {
          id: 5,
          code: 'GUEST_SERVICE',
          name: '客人服务能力',
          description: '提供客人服务请求、客房服务、投诉处理等能力',
          icon: 'ant-design:customer-service-outlined',
          color: '#eb2f96',
          type: 'business',
          enabled: true,
          priority: 90,
        },
      ],
    },
    // 餐厅服务管理模板
    {
      id: 107,
      name: '餐厅服务管理模板',
      description: '这是一个餐厅服务管理的模板，包含点餐、结账、客人服务等能力',
      business_type: 'RESTAURANT',
      resource_type: 'PHYSICAL',
      copy_scope: 'group',
      is_template: true,
      template_name: '餐厅服务管理模板',
      template_description:
        '这是一个餐厅服务管理的模板，包含点餐、结账、客人服务等能力',
      created_by: 'waiter',
      created_time: '2024-01-21 15:10:00',
      updated_time: '2024-01-21 15:10:00',
      capabilities: [
        {
          id: 5,
          code: 'GUEST_SERVICE',
          name: '客人服务能力',
          description: '提供客人服务请求、客房服务、投诉处理等能力',
          icon: 'ant-design:customer-service-outlined',
          color: '#eb2f96',
          type: 'business',
          enabled: true,
          priority: 90,
        },
        {
          id: 8,
          code: 'PAYMENT_GATEWAY',
          name: '支付网关能力',
          description: '提供多种支付方式集成和支付处理能力',
          icon: 'ant-design:credit-card-outlined',
          color: '#52c41a',
          type: 'technical',
          enabled: true,
          priority: 85,
        },
      ],
    },
    // 温泉服务管理模板
    {
      id: 108,
      name: '温泉服务管理模板',
      description:
        '这是一个温泉服务管理的模板，包含预约管理、服务提供、设备管理等能力',
      business_type: 'SPA',
      resource_type: 'PHYSICAL',
      copy_scope: 'public',
      is_template: true,
      template_name: '温泉服务管理模板',
      template_description:
        '这是一个温泉服务管理的模板，包含预约管理、服务提供、设备管理等能力',
      created_by: 'admin',
      created_time: '2024-01-22 10:00:00',
      updated_time: '2024-01-22 10:00:00',
      capabilities: [
        {
          id: 2,
          code: 'BOOKING_MANAGEMENT',
          name: '预订管理能力',
          description: '提供客房预订、订单处理、预订确认等业务能力',
          icon: 'ant-design:calendar-outlined',
          color: '#1890ff',
          type: 'business',
          enabled: true,
          priority: 95,
        },
        {
          id: 5,
          code: 'GUEST_SERVICE',
          name: '客人服务能力',
          description: '提供客人服务请求、客房服务、投诉处理等能力',
          icon: 'ant-design:customer-service-outlined',
          color: '#eb2f96',
          type: 'business',
          enabled: true,
          priority: 85,
        },
        {
          id: 9,
          code: 'IOT_DEVICE_MANAGEMENT',
          name: 'IoT设备管理能力',
          description: '提供智能门锁、温控器、照明等IoT设备管理能力',
          icon: 'ant-design:setting-outlined',
          color: '#722ed1',
          type: 'technical',
          enabled: true,
          priority: 80,
        },
      ],
    },
    // 景区管理模板
    {
      id: 109,
      name: '景区管理模板',
      description:
        '这是一个景区管理的模板，包含票务管理、游客服务、安全管理等能力',
      business_type: 'SCENIC',
      resource_type: 'PHYSICAL',
      copy_scope: 'private',
      is_template: true,
      template_name: '景区管理模板',
      template_description:
        '这是一个景区管理的模板，包含票务管理、游客服务、安全管理等能力',
      created_by: 'manager',
      created_time: '2024-01-23 14:30:00',
      updated_time: '2024-01-23 14:30:00',
      capabilities: [
        {
          id: 2,
          code: 'BOOKING_MANAGEMENT',
          name: '预订管理能力',
          description: '提供客房预订、订单处理、预订确认等业务能力',
          icon: 'ant-design:calendar-outlined',
          color: '#1890ff',
          type: 'business',
          enabled: true,
          priority: 90,
        },
        {
          id: 5,
          code: 'GUEST_SERVICE',
          name: '客人服务能力',
          description: '提供客人服务请求、客房服务、投诉处理等能力',
          icon: 'ant-design:customer-service-outlined',
          color: '#eb2f96',
          type: 'business',
          enabled: true,
          priority: 80,
        },
        {
          id: 12,
          code: 'SECURITY_MONITORING',
          name: '安全监控能力',
          description: '提供酒店安全监控、门禁管理、访客登记等能力',
          icon: 'ant-design:safety-outlined',
          color: '#ff4d4f',
          type: 'technical',
          enabled: true,
          priority: 90,
        },
      ],
    },
    // 医疗美容服务模板
    {
      id: 110,
      name: '医疗美容服务模板',
      description:
        '这是一个医疗美容服务的模板，包含预约管理、治疗记录、客户管理等能力',
      business_type: 'MEDICAL_BEAUTY',
      resource_type: 'PHYSICAL',
      copy_scope: 'public',
      is_template: true,
      template_name: '医疗美容服务模板',
      template_description:
        '这是一个医疗美容服务的模板，包含预约管理、治疗记录、客户管理等能力',
      created_by: 'admin',
      created_time: '2024-01-24 16:20:00',
      updated_time: '2024-01-24 16:20:00',
      capabilities: [
        {
          id: 2,
          code: 'BOOKING_MANAGEMENT',
          name: '预订管理能力',
          description: '提供客房预订、订单处理、预订确认等业务能力',
          icon: 'ant-design:calendar-outlined',
          color: '#1890ff',
          type: 'business',
          enabled: true,
          priority: 95,
        },
        {
          id: 5,
          code: 'GUEST_SERVICE',
          name: '客人服务能力',
          description: '提供客人服务请求、客房服务、投诉处理等能力',
          icon: 'ant-design:customer-service-outlined',
          color: '#eb2f96',
          type: 'business',
          enabled: true,
          priority: 90,
        },
        {
          id: 11,
          code: 'DATA_ANALYTICS',
          name: '数据分析能力',
          description: '提供酒店运营数据分析和商业智能能力',
          icon: 'ant-design:bar-chart-outlined',
          color: '#eb2f96',
          type: 'technical',
          enabled: true,
          priority: 85,
        },
      ],
    },
  ];

  // 过滤数据
  let filteredData = templateResources.filter(
    (item) => item.is_template === true,
  );

  if (businessType) {
    filteredData = filteredData.filter(
      (item) => item.business_type === businessType,
    );
  }

  if (resourceType) {
    filteredData = filteredData.filter(
      (item) => item.resource_type === resourceType,
    );
  }

  if (scope) {
    filteredData = filteredData.filter((item) => item.copy_scope === scope);
  }

  // 分页
  const startIndex = (Number(pageNo) - 1) * Number(pageSize);
  const endIndex = startIndex + Number(pageSize);
  const paginatedData = filteredData.slice(startIndex, endIndex);

  return {
    code: 0,
    message: '查询成功',
    data: {
      list: paginatedData,
      total: filteredData.length,
      pageNo: Number(pageNo),
      pageSize: Number(pageSize),
    },
  };
});
